package models

import (
	"gorm.io/plugin/soft_delete"
	"time"
)

type MallProduct struct {
	Id           int64                 `json:"id" gorm:"column:id"`                       // 商品id
	UserId       int64                 `json:"user_id" gorm:"column:user_id"`             // 用户id
	Title        string                `json:"title" gorm:"column:title"`                 // 标题
	Tag          string                `json:"tag" gorm:"column:tag"`                     // 标签
	Cover        string                `json:"cover" gorm:"column:cover"`                 // 封面
	Type         int                   `json:"type" gorm:"column:type"`                   // 商品类型1文档，2实体
	FileType     string                `json:"file_type" gorm:"column:file_type"`         // 文件类型
	Description  string                `json:"description" gorm:"column:description"`     // 商品描述
	Hot          int                   `json:"hot" gorm:"column:hot"`                     // 热度
	PriceType    int                   `json:"price_type" gorm:"column:price_type"`       // 价格类型1:免费，2:收费，3:会员
	Price        float64               `json:"price" gorm:"column:price"`                 // 价格
	PreviewPage  int                   `json:"preview_page" gorm:"column:preview_page"`   // 预览页数
	PuplishState int                   `json:"puplish_state" gorm:"column:puplish_state"` // 上架状态:1->未上架，2->上架，3->上架中
	PuplishTime  time.Time             `json:"puplish_time" gorm:"column:puplish_time"`   // 上架时间
	CreateTime   time.Time             `json:"create_time" gorm:"column:create_time;autoCreateTime"`
	UpdateTime   time.Time             `json:"update_time" gorm:"column:update_time;autoUpdateTime"`
	DeleteFlag   soft_delete.DeletedAt `json:"delete_flag" gorm:"column:delete_flag;softDelete:flag"`
	Ext1         string                `json:"ext1" gorm:"column:ext1"`
	Ext2         string                `json:"ext2" gorm:"column:ext2"`
	Ext3         string                `json:"ext3" gorm:"column:ext3"`
	Ext4         string                `json:"ext4" gorm:"column:ext4"`
	Images       []MallSpuImage        `gorm:"foreignKey:ProductId;references:Id"`
}

func (m *MallProduct) TableName() string {
	return "mall_product"
}
